package com.ruoyi.custom.strategy.wechatmp;

import com.ruoyi.ai.api.OpenAiApi;
import com.ruoyi.common.utils.wechatmp.WechatMpXmlUtil;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * 文本消息处理策略
 *
 * @author xudm
 * @description TODO
 * @date 2024-09-27  17:07
 */
@Component
@Slf4j
public class TextMessageHandleStrategy implements WechatMpMessageHandleStrategy {
    @Resource
    private OpenAiApi openAiApi;

    @Override
    public String handleMessage(String parmater) {
        // 处理文本消息
        // 解析请求参数
        Map<String, String> parseXml = WechatMpXmlUtil.parseXml(parmater);
        // 获取用户发送的文本消息内容
        String content = parseXml.get("Content");
        // 调用 OpenAiApi 进行文本生成
        String result = openAiApi.getAnswer(content);
        log.info("文本消息处理结果：{}", result);
        // 生成响应消息
        return WechatMpXmlUtil.generateResponseXml(parmater, result);
    }
}
